package model;

import java.util.Hashtable;

import excecao.ErroSemanticoException;

public class TabelaDeSimbolos {

	Hashtable<String, ItemTabela> tabela;

	public TabelaDeSimbolos() {
		tabela = new Hashtable<String, ItemTabela>();
	}

	public ItemTabela getItem(String chave) throws ErroSemanticoException {
		if (!tabela.containsKey(chave)) {
			// nao eh sintatico nao??
			throw new ErroSemanticoException("chave " + chave + " inexistente");
		} else {
			return tabela.get(chave);
		}

	}

	public void adicionarSimbolo(String chave, ItemTabela i) {
		tabela.put(chave, i);
	}

	public void removerSimbolo(String chave) {
		if (tabela.containsKey(chave)) {
			tabela.remove(chave);
		}
	}

	public boolean contemChave(String chave) {
		return tabela.containsKey(chave);
	}

	public int tamanho() {
		return tabela.size();
	}

	public String toString() {
		return tabela.toString();
	}
}
